Only in gemlib.dist: Changelog
diff -w gemlib.dist/Makefile gemlib.mine/Makefile
9,11c9,13
< AR	= $(CROSSBIN)/car
< CC	= cgcc -m68881 -m68020
< CPP	= /lib/cpp
---
> CC=/usr/bin/gcc

> CPP	= /lib/gcc-cpp

> MAKE= /usr/bin/make

> AR=/usr/bin/gcc-ar

> LIB=/lib

13,14d14
< LIB     = $(CROSSLIB)
< MAKE	= /util/gnu/bin/make
Only in gemlib.mine: README.lack
Only in gemlib.mine: aes.c
diff -w gemlib.dist/aesappl.c gemlib.mine/aesappl.c
10a11,15
>  *	appl_yield    aes>=2, yield to other gem apps

>  *	not yet implemented:

>  *	appl_bvset    a function in aes >= 2, I don't know what it does

>  *	appl_search   aes>=4, multitos, or both???  find info on other running

>  *	              applications

25a31
> #define L_appl_yie

45,49c51,55
<     bzero(_contrl,	CNTRLMAX*sizeof(short));
<     bzero(_intin,	INTINMAX*sizeof(short));
<     bzero(_intout,	INTOUTMAX*sizeof(short));
<     bzero(_ptsin, 	2*PTSINMAX*sizeof(short));
<     bzero(_ptsout, 	2*PTSOUTMAX*sizeof(short));
---
>     bzero(_control,	5*sizeof(short));

>     bzero(_int_in,	16*sizeof(short));

>     bzero(_int_out,	7*sizeof(short));

>     bzero(_addrin, 	2*sizeof(void *));

>     bzero(_addrout, 	1*sizeof(void *));

54,55d59
<     gl_ap_version = _global[0];
<     gl_apid = _global[2];
122a127,174
> #ifdef L_appl_bvs

> 

> /* Another aes 2.0 function.  I only have tos 1.4, so I really can't say what

>  * this one does.  coded control appears in turbo-assembler's aes_vdi.s.

>  * appl_bvset(arg1, arg2)

>  * {

>  * 	return __aes__(AES_CONTROL_ENCODE(16, 2, 1, 0));

>  * }

>  */

> #endif /* L_appl_bvs */

> 

> #ifdef L_appl_yie

> 

> /* I guess this yields to other applications.  Only present in aes >= 2;

>  * however, making an invalid aes call should accomplish exactly the same

>  * thing.

>  */

> int appl_yield(void)

> {

> 	return __aes__(AES_CONTROL_ENCODE(17, 0, 1, 0));

> }

> #endif /* L_appl_yie */

> 

> #ifdef L_appl_sea

> 

> /* This appears in either tos 4.0 or multitos, it apperantly "allows any

>  * application to find the apids of all other applications running 

>  * concurrently."  See xacc2.txt.

>  * flag can be either 0 or 1.  type appears to be a series of flags that say 

>  * something about this application.  id and name appear self explanatory.

>  */

> /*

> int appl_search(int flag, char *name, int *type, int *id)

> {

> 	int retval;

> 

> 	_int_in[0]=flag;

> 	_addrin[0]=name;

> 

> 	retval = __aes__(AES_CONTROL_ENCODE(18, 1, 3, 1));

> 

> 	*type=_int_out[1];

> 	*id=_int_out[2];

> 	return retval;

> }

>  */

> #endif /* L_appl_sea */

> 

diff -w gemlib.dist/aesbind.h gemlib.mine/aesbind.h
4d3
< #include <gemfast.h>
150c149
< __EXTERN int	shel_envrn __PROTO((char *result, char *param));
---
> __EXTERN int	shel_envrn __PROTO((char **result, char *param));

diff -w gemlib.dist/aeshell.c gemlib.mine/aeshell.c
76c76
< int shel_envrn(char *result, char *param)
---
> int shel_envrn(char **result, char *param)

Only in gemlib.mine: aesparams.c
Only in gemlib.dist: common.c
diff -w gemlib.dist/common.h gemlib.mine/common.h
27c27
<    respectively are 5, 16 and 7 shorts and 2 and 1 longs for
---
>    respectively are 5, 16 and 7 shorts and 3 and 1 longs for

32,37c32,52
< #define _control	(&_contrl[0])
< #define _int_in		(&_intin[0])
< #define _int_out	(&_intout[0])
< #define _addrin		((void **)(&_ptsin[0]))
< #define _addrout	((void **)(&_ptsout[0]))
< 
---
> typedef struct aesparams

> {

> 	int *control;

> 	int *global;

> 	int *int_in;

> 	int *int_out;

> 	void **addr_in;

> 	void **addr_out;

> }AESP;

> 

> #define _global		(_aesparams->global)

> #define _control	(_aesparams->control)

> #define _int_in		(_aesparams->int_in)

> #define _int_out	(_aesparams->int_out)

> #define _addrin		(_aesparams->addr_in)

> #define _addrout	(_aesparams->addr_out)

> 

> extern AESP	* const _aesparams;

> /* it won't be changed while seeting up for a trap 2, and will be the same after

>  * asm() returns.

>  */

80c95,96
< #ifndef __IN_COMMON_C__
---
> #ifndef __IN_COMMON_C

> #ifndef __IN_VDI_C

83,84c99
< extern unsigned short	_contrl[CNTRLMAX], _global[GLOBMAX];
< extern int		gl_apid, gl_ap_version;
---
> extern unsigned short	_contrl[CNTRLMAX];

86c101
< #endif
---
> #endif /* __IN_VDI_C */

89c104,126
< int __aes__(unsigned long coded_control);
---
> # ifndef __NO_GCC_INLINE__

> #  define __aes__(coded_control) \

> ({\

>     __asm__ volatile\

>     ("  movel	%1,  d1;\

>         lea	%0@, a0;\

> 	moveq	#0,  d0; \

> 	movepl	d0,  a0@(0);\

>         movepl	d1,  a0@(1);\

>         movl	%0,    d1;\

>         movw	#0xc8, d0;\

>         trap	#2;\

> 	movl	%0,__aesparams"\

>      :				/* no outputs */\

>      : "a"(_aesparams), "g"(coded_control)	/* inputs     */\

>      : "d0", "d1", "a0"    /* clobbered regs */\

>      );\

>     (int)_aesparams->int_out[0];\

> })

> # else

> extern int (*__aes__)(unsigned long coded_control);

> # endif /* __NO_GCC_INLINE__ */

> #endif /* __IN_COMMON_C__ */

diff -w gemlib.dist/gemfast.h gemlib.mine/gemfast.h
580,584c580,608
< extern short 		_intin[], _intout[], _ptsin[], _ptsout[];
< #ifndef __GNUC__ /* for gcc see common.h in gemlib */
< extern void  		*_addrin[], *_addrout[];
< #endif
< extern int		gl_apid, gl_ap_version;
---
> #ifndef _COMMON_H

> typedef struct aesparams

> {

> 	int *control;

> 	int *global;

> 	int *int_in;

> 	int *int_out;

> 	void **addr_in;

> 	void **addr_out;

> }AESP;

> 

> #define _int_in		(_aesparams->int_in)

> #define _int_out	(_aesparams->int_out)

> #define _addrin		(_aesparams->addr_in)

> #define _addrout	(_aesparams->addr_out)

> #define gl_apid 	(_aesparams->global[2])

> #define gl_ap_version (_aesparmas->global[0])

> 

> extern AESP *_aesparams;

> extern int(*__aes__)(unsigned long);

> extern int _user_aes(unsigned long);

> extern int _super_aes(unsigned long);

> #endif /*_COMMON_H*/

> 

> #define NEW_AESP(x) \

> 	int __loc_control[5], __loc_global[15], __loc_int_in[16], __loc_int_out[7]; \

> 	void *__loc_addr_in[3], *__loc_addr_out; \

> 	AESP x={&__loc_control[0], &__loc_global[0], &__loc_int_in[0], \

> 	        &__loc_int_out[0], &__loc_addr_in[0], &__loc_addr_out}

diff -w gemlib.dist/ident.c gemlib.mine/ident.c
2c2
< char __Ident_gem[] = "$PatchLevel: atariST/TT GnuC gemlib: " PatchLevel " $";
---
> char __Ident_gem[] = "$PatchLevel: (modified for lack.xfs) atariST/TT GnuC gemlib: " PatchLevel " $";

diff -w gemlib.dist/makefile.16 gemlib.mine/makefile.16
3,5c3,5
< CC=  gcc
< CPP= gcc-cpp
< AR=  gcc-ar
---
> CC=  \usr\local\bin\gcc.ttp

> CPP= \lib\gcc-cpp

> AR=  \usr\bin\gcc-ar.ttp

8c8
< LIB = d:\gnu\lib
---
> LIB = \lib

17c17
< CFLAGS= $(CFFLAGS) -fomit-frame-pointer
---
> CFLAGS= $(CFFLAGS) -fomit-frame-pointer -D__NO_GCC_INLINE__

27a28,30
> debug:

> CFALGS=  $(CFLAGS)

> 

diff -w gemlib.dist/mincl gemlib.mine/mincl
5c5
< COMSRC = common.c ident.c
---
> COMSRC = aes.c vdi.c ident.c aesparams.c

9c9
< 	  appl_tre.o appl_exi.o 
---
> 	  appl_tre.o appl_yie.o appl_exi.o 

99c99
< COMOBJ = common.o ident.o
---
> COMOBJ = aes.o vdi.o super_aes.o ident.o aesparams.o

101a102,105
> LACK=  $(AESALL) $(COMOBJ)

> 

> lack:  $(LACK)

> 	$(AR) rs lackaes.olb $(LACK) 

Only in gemlib.mine: vdi.c
